package com.bosssoft.user.permission.center.serve.service;

import common.constant.GlobalConstant;
import common.data.base.BaseEntity;

import java.util.Date;

/**
 * @interfaceName: AbstractService
 * @description: 定义了对通用字段进行操作的抽象类
 * @author: lanyukai
 * @date: 2024/6/11 16:57
 * @since 1.0
 **/
public abstract class AbstractService {
    /**
     * 标记操作类型
     */
    public enum OperateType{
        /**
         * 增加
         */
        ADD,
        /**
         * 修改
         */
        UPDATE
    }

    /**
     *  对通用字段赋值
     * @param baseEntity 源字段
     * @param operateType 操作类型 是 ADD  或者 UPDATE
     */
    protected void initCommonField(BaseEntity baseEntity, OperateType operateType){
        if(operateType==OperateType.ADD){
            if(baseEntity.getCreatedBy()==null){
                baseEntity.setCreatedBy(GlobalConstant.DEFAULT_CREATOR_ID);
                baseEntity.setUpdatedBy(GlobalConstant.DEFAULT_MODIFIOR_ID);
            }
            if(baseEntity.getCreatedTime()==null){
                baseEntity.setCreatedTime(new Date());
                baseEntity.setUpdatedTime(new Date());
            }
        }
    }
}
